package com.pactera.madp.cp.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.pactera.madp.common.core.util.R;
import com.pactera.madp.cp.api.dto.emp.EmployeeCreateDoDTO;
import com.pactera.madp.cp.api.dto.emp.EmployeeDoUpdateDTO;
import com.pactera.madp.cp.api.entity.employeeWechat.EmployeeDoEntity;
import com.pactera.madp.cp.api.vo.employee.EmployeeDoVO;
import com.pactera.madp.cp.api.vo.employee.EmployeeInfoWechatVO;

import java.util.List;

/**
 * (CpEmployeeDo)表服务接口
 *
 * @author yushen.qi
 * @since 2021-06-29 15:06:39
 */
public interface EmployeeDoService extends IService<EmployeeDoEntity> {

   /**
    * 新增待办
    *
    * @param dto
    * @return
    */
   R<Boolean> insert(EmployeeCreateDoDTO dto);

   /**
    * 更新待办
    *
    * @param dto
    * @return
    */
   boolean update(EmployeeDoUpdateDTO dto);

   /**
    * 完成
    *
    * @param id
    * @param state
    */
   void state(Integer id, Integer state);

   /**
    * 待办列表
    *
    * @param page
    * @param state
    * @param wxExternalUserid
    * @param wxUserId
    * @return
    */
   IPage listByState(Page page, Integer state, String wxExternalUserid, String wxUserId);

   List<EmployeeDoVO> listByStateList(String wxUserId);

   /**
    * 获取经理提醒数据
    *
    * @param wxUserId
    * @return
    */
   Page<List<EmployeeDoVO>> getInfoDoPage(String wxUserId, Page page);

   Page<EmployeeInfoWechatVO> getInfoFollowPage(String wxUserId, Page page);

   Page<EmployeeInfoWechatVO> getInfoInteractionPage(String wxUserId, Page page);

}
